<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// - size 返回Set的长度
	// {
	// 	let s1 = new Set([1,2,3,4,3,2,1]);
	// 	console.log(s1.size);// 4
	// 	s1.add(9);
	// 	s1.add(10);
	// 	console.log(s1.size);// 6
	// }
	
	// - add 添加某个值，返回 Set 结构本身。
	// {
	// 	let s1 = new Set();
	// 	s1.add(10);
	// 	s1.add(9);
	// 	// s1增加成员9，返回值为s1并赋值给常量s2
	// 	// const s2 = s1.add(9);
	// 	// console.log(s1,s1 === s2);
	//
	// 	// 链式调用
	// 	// const s2 = s1.add(8);
	// 	// const s3 = s2.add(100);
	// 	// console.log(s3,s2,s1)
	//
	// 	const s3 = s1.add(8).add(100);
	// 	console.log(s3,s1)
	//
	// }
	
	// - delete 删除某个值，返回一个布尔值，true 表示删除是否成功。
	{
		// const s1 = new Set([1,2,3,4,5,4]);
		// const result = s1.delete(5);
		// console.log(s1,result);// {1, 2, 3, 4} true
		// const result2 = s1.delete(6);
		// console.log(s1,result2);// {1, 2, 3, 4} false
	}
	
	
	
	// - has 返回一个布尔值，表示该值是否为`Set`的成员
	// {
	// 	let s1 = new Set([1,2,3,4]);
	// 	console.log(s1.has(3));// true
	// 	console.log(s1.has(30));// false
	// 	s1.delete(2);
	// 	console.log(s1.has(2));// false
	// }
	
	
	// - clear 清除所有成员，没有返回值。
	// {
	// 	let s1 = new Set([1,2,3,4]);
	// 	s1.clear();
	// 	console.log(s1);// {}
	// }
	
	
	// - `keys()`：返回键名的遍历器,由于 Set 结构没有键名，只有键值（或者说键名和键值是同一个值），所以`keys`方法和`values`方法的行为完全一致。
	// - `values()`：返回键值的遍历器
	// - `entries()`：返回键值对的遍历器
	// - `forEach()`：使用回调函数遍历每个成员
	{
		// let s1 = new Set([1,2,3,4,5,4,3,2,1]);
		// for(let value of s1){
		// 	console.log(value);// 1 2 3 4 5
		// }
		
		// for(let key of s1.keys()){
		// 	console.log(key);// 1 2 3 4 5
		// }
		
		// for(let key of s1.values()){
		// 	console.log(key);// 1 2 3 4 5
		// }
		
		// for(let [key,value] of s1.entries()){
		// 	console.log(key,value);
		// }
	}
</script>
</html>